package com.gitee.zhanyao.common.model;

import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * 从身份证中提取的信息
 * 18位身份证号码各位的含义:
 * 一、1-2位省、自治区、直辖市代码；
 * 二、3-4位地级市、盟、自治州代码；
 * 三、5-6位县、县级市、区代码；
 * 四、7-14位出生年月日，比如19670401代表1967年4月1日；
 * 五、15-17位为顺序号，其中17位男为单数，女为双数；
 * 六、18位为校验码，0-9和X。作为尾号的校验码，是由号码编制单位按统一的公式计算出来的。X是罗马数字的10。
 */
@Data
public class IdCardInfo implements Serializable {

    /**
     * 身份证号码
     */
    private String idNumber;

    /**
     * 1-2位省、自治区、直辖市代码
     */
    private String provinceCode;

    /**
     * 3-4位地级市、盟、自治州代码
     */
    private String cityCode;

    /**
     * 5-6位县、县级市、区代码
     */
    private String countyCode;

    /**
     * 7-14位出生年月日
     */
    private LocalDate birthday;

    /**
     * 17位性别，单数为男，双数为女；
     * 1：男；0：女；
     */
    private Integer gender;

}
